草庐IT

java - JUNIT测试void方法

全部标签

ruby-on-rails - 如何测试从控制台登录Rails?

我花了很多时间弄清楚如何使用Rails的响应对象登录和注销。标准的博客还可以,但我终于诊断出来了,我想在这里记录一下。app.get'/'assert_response:successapp.get'/auth_only_url'assert_response302user=User.find(:user_to_login)app.post'/signin_url',:user_email=>user.email,:user_password=>''assert_response302app.follow_redirect!assert_response:successapp.get'

ruby - 使用 Sinatra 和 rspec stub Controller 方法

因此,我正在尝试找出一种在rspec中为Sinatra应用stubController方法的方法。这样做的主要原因是测试应用程序的逻辑流程,并确保它在满足某些条件时调用必要的功能。所以,本质上,我希望能够做类似的事情controller.should_receive(:fancy_method).and_return("Thisisastring")我遇到的困难是访问sinatra应用程序中的Controller实例。我可以使用sinatraController类上的class_eval覆盖当前函数,但我想断言这些函数确实在运行。有人有什么建议吗?谢谢。 最

ruby - 在 Ruby 中解析大文件的最快方法

我有一个大约150MB的简单文本文件。我的代码将读取每一行,如果它与某些正则表达式匹配,它就会写入输出文件。但是现在,遍历文件的所有行(几分钟)只需要很长时间,就像File.open(filename).eachdo|line|#dosomestuffend我知道循环遍历文件行需要一段时间,因为即使我对“#dosomestuff”中的数据不做任何操作,它仍然需要很长时间。我知道一些unix程序几乎可以立即解析这样的大文件(比如grep),所以我想知道为什么ruby​​(MRI1.9)读取文件需要这么长时间,有什么方法可以让它更快吗? 最佳答案

ruby-on-rails - 在 Ruby 中运行 eval 有安全的方法吗?

我们正在开发一种与Tropo具有类似要求的产品(参见https://github.com/tropo/tropo-samples/tree/master/ruby),允许用户编写一个ruby​​脚本,该脚本可以访问传入的一些函数和变量。但是,我们希望避免用户访问全局调用删除所有用户或终止程序。有没有办法用eval来完成这个? 最佳答案 这在很大程度上取决于您如何实现它,但请研究绑定(bind)与eval的使用。通过创建您自己的绑定(bind)并使用“安全”对象预加载它,您可以限制用户可以使用他的代码执行的操作。http://rdoc

ruby - Rails 3 db :migrate 的未定义方法 `visitor'

我在Rails3中进行数据库迁移时遇到异常。undefinedmethod`visitor'for#编辑请查看解决方案here.在我的项目中没有出现字符串visitor所以我很困惑。这是完整的转储:$rakedb:migrate--trace**Invokedb:migrate(first_time)**Invokeenvironment(first_time)**Executeenvironment**Invokedb:load_config(first_time)**Invokerails_env(first_time)**Executerails_env**Executedb:l

ruby - RSpec 规范伪造类常量的最佳实践或解决方法

假设我有Car和Mechanic类(class)。汽车有“运行”方法。Mechanic出于某种原因需要Car。然后我编写RSpec规范。在mechanic中,我定义了一个这样的假类:classCar;end然后将mechanic在其上使用的方法stub。如果我单独运行测试,一切正常。但是当我一起运行两个测试时(rspecspec/directory/),我的Mechanicspecs使用真实的Car类。所以。我想这是因为ruby​​类是“开放的”,我已经为汽车规范加载了一次类。但是有更好的方法吗?这种情况的最佳做法是什么?这是否意味着我的代码需要一些改进,因为它可能是紧密耦合的?我在g

ruby - MiniTest - 仅重新运行失败的测试

是否可以让minitest通过rake任务只运行失败的测试?在互联网上找不到任何关于此的信息...使用rspec或cucumber它可以工作。这里有任何可能性吗? 最佳答案 我能找到的最接近的东西是这个插件:https://github.com/ivantsepp/minitest-rerun-options它输出失败测试的命令行选项,如下所示:Rerunfailedtestsoptions:--nameTestExample#test_another_that_will_fail--nameTestExample#test_tha

ruby-on-rails - 使用 rspec 测试 rails 而不需要运行所有初始化程序?

假设您正在开发一个Rails应用程序,它有很多初始化程序,这些初始化程序会在启动时调用各种外部系统。当使用rspec-rails运行rspec时,它会运行所有初始化器,即使您的测试很简单,不需要rails基础设施。我知道您可以使用Spork只产生一次这种成本,但有没有办法完全不产生它?仅仅为了一个简单的PORO规范而加载所有rails似乎很愚蠢。 最佳答案 不要使用spork。如果您想使用预加载器,请查看zeus或spring。您不需要加载整个Rails环境来测试不依赖于Rails的东西。这可以很简单,例如明确要求每个规范所需的依赖

ruby - 在 rspec 中测试多步骤工作流程

我想了解使用rspec测试多步骤工作流的习惯用法或最佳实践。我们以“购物车”系统为例,其中的购买流程可能是当用户提交购物篮并且我们没有使用https时,重定向到https当用户提交购物篮并且我们使用https并且没有cookie时,创建并显示一个新的购物篮并发回cookie当用户提交到购物车并且我们使用https并且有一个有效的cookie并且新商品与第一个商品用于不同的产品时,向购物车添加一行并显示这两行当用户提交到购物篮并且我们使用https并且有一个有效的cookie并且新商品与之前的商品相同时,增加该购物篮行的数量并显示这两条线当用户点击购物车页面上的“结帐”并使用https并

ruby - 在 ruby​​ 中模拟 3rd 方对象的最佳方法是什么?

我正在使用twittergem编写一个测试应用程序,我想编写一个集成测试,但我不知道如何模拟Twitter命名空间中的对象。这是我要测试的功能:defbuild_twitter(omniauth)Twitter.configuredo|config|config.consumer_key=TWITTER_KEYconfig.consumer_secret=TWITTER_SECRETconfig.oauth_token=omniauth['credentials']['token']config.oauth_token_secret=omniauth['credentials']['s